
//动画函数封装
function animate(obj,json,callback){
	clearInterval(obj.timer);   //1.清除定时器
	obj.timer = setInterval(function () { //2.设置定时器
		var flag = true;
		for(var key in json){  //3.遍历json
			var step = 0;
			//4.不同条件下取得step值
			if(key=="opacity"){
				step = (json[key]-getStyle(obj,key))*100/10;	//因为是相减所以隐士转换成number，此处可不用Number
			}else{
				step = (parseInt(json[key])-parseInt(getStyle(obj,key)))/10;    //parseInt()去除单位
			}
			//5.判断step向那边取值
			step = step>0?Math.ceil(step):Math.floor(step);
			//6.设置新的位置，让它动起来    新的位置 = 当前位置+step
			if(key=="opacity"){
				obj.style.opacity = Number(getStyle(obj,key)) + step/100;	//	值是个小数
				//8.判断是否都到达目标， 因为是小数所以不能用parseInt，所以要写number
				if(Number(getStyle(obj,key))!=Number(json[key])){
					flag = false;
				}
			}else if(key=="z-index"){
				obj.style.zIndex = json[key];
			}else{
				obj.style[key] = parseInt(getStyle(obj,key) )+ step + "px";
			}
			//7.判断是否都到达目标，没有到达，就标记为
			if(parseInt(getStyle(obj,key))!=parseInt(json[key])){
				flag = false;
			}
		}
		if(flag){
			clearInterval(obj.timer);
			if(callback){
				callback(obj);
			}
		}
	},30)
}

//获取属性值的方法
function getStyle(obj,attr){
	if(window.getComputedStyle){
		return window.getComputedStyle(obj,null)[attr];
	}
	return obj.currentStyle[attr];
}

